/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package qlvbdq.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import qlvbdq.dconnection.SQLServerConnect;
import qlvbdq.dto.PhieuDichVuDTO;

/**
 *
 * @author tuan
 */
public class PhieuDichVuDAO {
    
    private static final String MaPhieuDV = "MaPDV000";
    private static final int lengthMa = 8;
    
    public PhieuDichVuDAO() {
    }
    
    public String getNewMaPhieuDichVu() throws SQLException {
        String MaPDV = "";
        int maxMa = 0;
        ResultSet rs = SQLServerConnect.getInstance().getDataFromStore("GetAllPhieuDichVuFromDatabase", null);
        while (rs.next()) {
            int temp = Integer.parseInt( rs.getString("MAPHIEUDV").substring(lengthMa) );
            if (maxMa < temp) {
                maxMa = temp;
            }
        }
        maxMa ++;
        MaPDV = MaPDV.concat(MaPhieuDV + maxMa);
        return MaPDV;
    }
    
    public PhieuDichVuDTO getPhieuDVByMaPhieu(String MaPDV) throws SQLException {
        Object[] objs = { MaPDV };
        ResultSet rs = SQLServerConnect.getInstance().getDataFromStore("GetPhieuDichVuByMaPhieuFromDatabase( ? )", objs);
        PhieuDichVuDTO phieuDV = new PhieuDichVuDTO();
        while (rs.next()) {
            phieuDV.setMaPhieuVu(rs.getString("MAPHIEUDV"));
            phieuDV.setMaKhachHang(rs.getString("MAKHACHHANG"));
            phieuDV.setNgayDangKy(rs.getDate("NGAYDANGKY"));
            phieuDV.setNgayGiao(rs.getDate("NGAYGIAO"));
            phieuDV.setTongTien(rs.getLong("TONGTIEN"));
        }
        return phieuDV;
    }
    
    public PhieuDichVuDTO getPhieuDVByMaKH(String MaKH) throws SQLException {
        Object[] objs = { MaKH };
        ResultSet rs = SQLServerConnect.getInstance().getDataFromStore("GetPhieuDichVuByMaKHFromDatabase( ? )", objs);
        PhieuDichVuDTO phieuDV = new PhieuDichVuDTO();
        while (rs.next()) {
            phieuDV.setMaPhieuVu(rs.getString("MAPHIEUDV"));
            phieuDV.setMaKhachHang(rs.getString("MAKHACHHANG"));
            phieuDV.setNgayDangKy(rs.getDate("NGAYDANGKY"));
            phieuDV.setNgayGiao(rs.getDate("NGAYGIAO"));
            phieuDV.setTongTien(rs.getLong("TONGTIEN"));
        }
        return phieuDV;
    }
    
    public int updatePhieuDichVu(PhieuDichVuDTO phieuDV) {
        Object[] objs = { phieuDV.getMaPhieuVu(), phieuDV.getMaKhachHang(), phieuDV.getNgayDangKy(),
                phieuDV.getNgayGiao(), phieuDV.getTongTien()};
        return SQLServerConnect.getInstance().updateDataToDatabase("UpdatePhieuDVToDatabase(?, ?, ?, ?, ?)", objs);
    }
    
    public int insertPhieuDichVu(PhieuDichVuDTO phieuDV) {
        Object[] objs = { phieuDV.getMaPhieuVu(), phieuDV.getMaKhachHang(), phieuDV.getNgayDangKy(),
                phieuDV.getNgayGiao(), phieuDV.getTongTien()};
        return SQLServerConnect.getInstance().updateDataToDatabase("InsertServiceBillFromDatabase(?, ?, ?, ?, ?)", objs);
    }
    
    public int deletePhieuDichVu(PhieuDichVuDTO phieuDV) {
        Object[] objs = { phieuDV.getMaPhieuVu() };
        return SQLServerConnect.getInstance().updateDataToDatabase("DeletePhieuDVToDatabase(?)", objs);
    }
}
